home *** CD-ROM | disk | FTP | other *** search
-
- ///¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯ <
- ///
- ///ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Íàÿäéñ: MainWin ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ <
- ///
- ///¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ <
- ///
- void __saveds __asm ELDisplay (REG(a0) struct Hook *hook, REG(a2) Object *obj, REG(a1) struct NList_DisplayMessage *nldm)
- {
- nldm->preparses[0] = MUIX_C;
- nldm->preparses[1] = MUIX_C;
- if (nldm->entry)
- {
- nldm->strings[0] = (STRPTR)(((struct ELNode *)nldm->entry)->idstr);
- nldm->strings[1] = ((struct ELNode *)nldm->entry)->sizestr;
- }
- else
- {
- nldm->strings[0] = MW_ENTRY_LIST_TITLE1;
- nldm->strings[1] = MW_ENTRY_LIST_TITLE2;
- }
- }
- APTR __saveds __asm ELConstruct (REG(a0) struct Hook *hook, REG(a2) Object *obj, REG(a1) struct NList_ConstructMessage *nlcm)
- {
- struct ELNode *elnode;
-
- if (elnode = AllocPooled (nlcm->pool, sizeof(struct ELNode)))
- {
- elnode->me = (struct MessageEntry *)(nlcm->entry);
- elnode->idstr[0] = elnode->me->me_ID;
- elnode->idstr[1] = 0L;
- stcl_d (elnode->sizestr, elnode->me->me_Size);
- return (elnode);
- }
- return (NULL);
- }
- void __saveds __asm ELDestruct (REG(a0) struct Hook *hook, REG(a2) Object *obj, REG(a1) struct NList_DestructMessage *nldm)
- {
- FreePooled (nldm->pool, nldm->entry, sizeof(struct ELNode));
- }
- void __saveds __asm SELDisplay (REG(a0) struct Hook *hook, REG(a2) Object *obj, REG(a1) struct NList_DisplayMessage *nldm)
- {
- if (nldm->entry)
- nldm->strings[0] = nldm->entry;
- else
- {
- nldm->preparses[0] = MUIX_C;
- nldm->strings[0] = MW_SENTRY_MTEXT_TITLE;
- }
- }
- void __saveds __asm HDisplay (REG(a0) struct Hook *hook, REG(a2) Object *obj, REG(a1) struct NList_DisplayMessage *nldm)
- {
- nldm->preparses[0] = MUIX_R;
- nldm->preparses[1] = MUIX_L;
- if (nldm->entry)
- {
- nldm->strings[0] = ((struct HLNode *)nldm->entry)->name;
- nldm->strings[1] = ((struct HLNode *)nldm->entry)->val;
- }
- }
- APTR __saveds __asm HConstruct (REG(a0) struct Hook *hook, REG(a2) Object *obj, REG(a1) struct NList_ConstructMessage *nlcm)
- {
- struct HLNode *hlnode;
-
- if (hlnode = AllocPooled (nlcm->pool, sizeof(struct HLNode)))
- {
- strcpy (hlnode->name, ((struct HINode *)nlcm->entry)->name);
- strcpy (hlnode->val, ((struct HINode *)nlcm->entry)->val);
- return (hlnode);
- }
- return (NULL);
- }
- void __saveds __asm HDestruct (REG(a0) struct Hook *hook, REG(a2) Object *obj, REG(a1) struct NList_DestructMessage *nldm)
- {
- FreePooled (nldm->pool, nldm->entry, sizeof(struct HLNode));
- }
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ MainWinOpenPKT() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Æaîïíð ç æaâïòæéa ìíáíâí îaéäña. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG MainWinOpenPKT (struct IClass *cl, Object *obj, Msg *msg)
- {
- struct rtFileRequester *req;
- UBYTE fname[FMSIZE];
- UBYTE fpn[2*FMSIZE];
- struct MWData *data = INST_DATA(cl, obj);
-
- strcpy (fname, data->reqfile);
- if (req = rtAllocRequestA (RT_FILEREQ, NULL))
- {
- rtChangeReqAttr (req, RTFI_Dir, workdir, TAG_DONE);
- if (rtFileRequest (req, fname,
- REQ_SELECT_PACKET,
- RT_Underscore, '_',
- RTFI_OkText, LOAD_BUTTON,
- TAG_MORE, hooktags))
- {
- strmfp (fpn, req->Dir, fname);
- if (MP_IsFile (fpn, MPISFP_DONT_USE, MPISFT_PKT) == 1L)
- {
- strcpy (workdir, req->Dir);
- strcpy (data->reqfile, fname);
- strcpy (data->workfile, fpn);
- DoMethod (obj, MUIM_MW_NewPacket);
- }
- else
- MakeRequest (REQ_TITLE_ERROR, NOT_PACKET_FILE, CANCEL_BUTTON, fpn);
- }
- rtFreeRequest (req);
- }
- else
- MakeRequest (REQ_TITLE_ERROR, OUT_MEM, CANCEL_BUTTON, NULL);
- return (0L);
- }
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ MainWinNewName() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Æaâïòæéa ìíáíâí îaéäña îí ááäã½ììíëò çëäìç. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG MainWinNewName (struct IClass *cl, Object *obj, Msg *msg)
- {
- STRPTR str;
- LONG x;
- struct MWData *data = INST_DATA(cl, obj);
-
- if ((str = getstr (data->PNameStr)) && (*str))
- {
- if (MP_IsFile (str, MPISFP_DONT_USE, MPISFT_PKT) == 1L)
- {
- strcpy (data->workfile, str);
- x = stcgfp (workdir, str);
- strcpy (data->reqfile, &str[x]);
- DoMethod (obj, MUIM_MW_NewPacket);
- }
- else
- MakeRequest (REQ_TITLE_ERROR, NOT_PACKET_FILE, CANCEL_BUTTON, str);
- }
- return (0L);
- }
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ MainWinNewPacket() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Íñïaàíñéa ìíáíâí îaéäña. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG MainWinNewPacket (struct IClass *cl, Object *obj, Msg *msg)
- {
- LONG error;
- STRPTR type;
- struct MWData *data = INST_DATA(cl, obj);
-
- DoMethod (data->EList, MUIM_NList_Clear);
- DoMethod (data->PHList, MUIM_NList_Clear);
- DoMethod (obj, MUIM_MultiSet, MUIA_Text_Contents, empty, data->PNTText, data->MesText, data->ENumText, data->AreaText, data->DateText, data->FromText, data->ToText, data->SubjText, NULL);
- DoMethod (obj, MUIM_MultiSet, MUIA_Lamp_Color, MUIV_Lamp_Color_Off, data->PStatLamp, data->MStatLamp, data->EStatLamp, NULL);
- set (data->EntryMText, MUIA_Mailtext_Text, empty);
- FreeMemPool (&data->MemPool);
- if (data->MailPkt)
- MP_FreePacket (data->MailPkt);
- set (data->PNameStr, MUIA_String_Contents, data->workfile);
- if (data->MailPkt = MP_AllocPacket (data->workfile, &error))
- {
- if (data->MailPkt->mp_Status != MPS_OK)
- {
- set (data->PStatLamp, MUIA_Lamp_Color, MUIV_Lamp_Color_Error);
- MakeRequest (REQ_TITLE_ERROR, PACKET_ERROR, CANCEL_BUTTON, packet_st[data->MailPkt->mp_Status]);
- }
- else
- {
- set (data->PHList, MUIA_NList_Quiet, MUIV_NList_Quiet_Full);
- switch (data->MailPkt->mp_Type)
- {
- case MPT_3D:
- type = MW_PT_3D;
- InsertHNodeW (data->PHList, PH_ORIG_ZONE, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_OrigZone);
- InsertHNodeW (data->PHList, PH_DEST_ZONE, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_DestZone);
- InsertHNodeW (data->PHList, PH_ORIG_NET, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_OrigNet);
- InsertHNodeW (data->PHList, PH_DEST_NET, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_DestNet);
- InsertHNodeW (data->PHList, PH_ORIG_NODE, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_OrigNode);
- InsertHNodeW (data->PHList, PH_DEST_NODE, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_DestNode);
- InsertHNodeW (data->PHList, PH_YEAR, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_Year);
- InsertHNodeW (data->PHList, PH_MONTH, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_Month);
- InsertHNodeW (data->PHList, PH_DAY, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_Day);
- InsertHNodeW (data->PHList, PH_HOUR, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_Hour);
- InsertHNodeW (data->PHList, PH_MIN, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_Minute);
- InsertHNodeW (data->PHList, PH_SEC, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_Second);
- InsertHNodeW (data->PHList, PH_BAUD, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_Baud);
- InsertHNodeW (data->PHList, PH_VER, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_PktVer);
- InsertHNodeB (data->PHList, PH_PROD_CODE, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_ProdCode);
- InsertHNodeB (data->PHList, PH_SERIAL_NO, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_SerialNo);
- InsertHNodeS (data->PHList, PH_PASSWORD, ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_Password);
- break;
- case MPT_4D:
- type = MW_PT_4D;
- InsertHNodeW (data->PHList, PH_ORIG_ZONE, data->MailPkt->mp_Header->ph_OrigZone);
- InsertHNodeW (data->PHList, PH_DEST_ZONE, data->MailPkt->mp_Header->ph_DestZone);
- InsertHNodeW (data->PHList, PH_S_ZONE, data->MailPkt->mp_Header->ph_SZone);
- InsertHNodeW (data->PHList, PH_R_ZONE, data->MailPkt->mp_Header->ph_RZone);
- InsertHNodeW (data->PHList, PH_ORIG_NET, data->MailPkt->mp_Header->ph_OrigNet);
- InsertHNodeW (data->PHList, PH_DEST_NET, data->MailPkt->mp_Header->ph_DestNet);
- InsertHNodeW (data->PHList, PH_ORIG_NODE, data->MailPkt->mp_Header->ph_OrigNode);
- InsertHNodeW (data->PHList, PH_DEST_NODE, data->MailPkt->mp_Header->ph_DestNode);
- InsertHNodeW (data->PHList, PH_ORIG_POINT, data->MailPkt->mp_Header->ph_OrigPoint);
- InsertHNodeW (data->PHList, PH_DEST_POINT, data->MailPkt->mp_Header->ph_DestPoint);
- InsertHNodeW (data->PHList, PH_YEAR, data->MailPkt->mp_Header->ph_Year);
- InsertHNodeW (data->PHList, PH_MONTH, data->MailPkt->mp_Header->ph_Month);
- InsertHNodeW (data->PHList, PH_DAY, data->MailPkt->mp_Header->ph_Day);
- InsertHNodeW (data->PHList, PH_HOUR, data->MailPkt->mp_Header->ph_Hour);
- InsertHNodeW (data->PHList, PH_MIN, data->MailPkt->mp_Header->ph_Minute);
- InsertHNodeW (data->PHList, PH_SEC, data->MailPkt->mp_Header->ph_Second);
- InsertHNodeW (data->PHList, PH_BAUD, data->MailPkt->mp_Header->ph_Baud);
- InsertHNodeW (data->PHList, PH_VER, data->MailPkt->mp_Header->ph_PktVer);
- InsertHNodeW (data->PHList, PH_AUX_NET, data->MailPkt->mp_Header->ph_AuxNet);
- InsertHNodeW (data->PHList, PH_CW_VAL_COPY, data->MailPkt->mp_Header->ph_CWValCopy);
- InsertHNodeW (data->PHList, PH_CAP_WORD, data->MailPkt->mp_Header->ph_CapWord);
- InsertHNodeB (data->PHList, PH_PROD_CODE_LO, data->MailPkt->mp_Header->ph_ProdCodeLo);
- InsertHNodeB (data->PHList, PH_PROD_CODE_HI, data->MailPkt->mp_Header->ph_ProdCodeHi);
- InsertHNodeB (data->PHList, PH_SERIAL_NO_LO, data->MailPkt->mp_Header->ph_RevisionLo);
- InsertHNodeB (data->PHList, PH_SERIAL_NO_HI, data->MailPkt->mp_Header->ph_RevisionHi);
- InsertHNodeS (data->PHList, PH_PASSWORD, data->MailPkt->mp_Header->ph_Password);
- InsertHNodeL (data->PHList, PH_PRODUCT, data->MailPkt->mp_Header->ph_Product);
- break;
- case MPT_5D:
- type = MW_PT_5D;
- InsertHNodeS (data->PHList, PH_ORIG_DOM, ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_OrigDom);
- InsertHNodeS (data->PHList, PH_DEST_DOM, ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_DestDom);
- InsertHNodeW (data->PHList, PH_ORIG_ZONE, ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_OrigZone);
- InsertHNodeW (data->PHList, PH_DEST_ZONE, ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_DestZone);
- InsertHNodeW (data->PHList, PH_ORIG_NET, ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_OrigNet);
- InsertHNodeW (data->PHList, PH_DEST_NET, ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_DestNet);
- InsertHNodeW (data->PHList, PH_ORIG_NODE, ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_OrigNode);
- InsertHNodeW (data->PHList, PH_DEST_NODE, ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_DestNode);
- InsertHNodeW (data->PHList, PH_ORIG_POINT, ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_OrigPoint);
- InsertHNodeW (data->PHList, PH_DEST_POINT, ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_DestPoint);
- InsertHNodeW (data->PHList, PH_VER, ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_PktVer);
- InsertHNodeW (data->PHList, PH_SUB_VER, ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_PktSubVer);
- InsertHNodeB (data->PHList, PH_PROD_CODE, ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_ProdCode);
- InsertHNodeB (data->PHList, PH_SERIAL_NO, ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_Revision);
- InsertHNodeS (data->PHList, PH_PASSWORD, ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_Password);
- InsertHNodeL (data->PHList, PH_PRODUCT, ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_Product);
- break;
- default:
- type = MW_PT_UNKNOWN;
- }
- set (data->PNTText, MUIA_Text_Contents, type);
- set (data->PHList, MUIA_NList_Quiet, MUIV_NList_Quiet_None);
- set (data->PStatLamp, MUIA_Lamp_Color, MUIV_Lamp_Color_Ok);
- if (data->MailMes = MP_ToMessage (data->MailPkt, data->mesnum = 0L))
- {
- DoMethod (data->NumBut, MUIM_Numeric_SetDefault);
- set (data->NumBut, MUIA_Numeric_Max, data->MailPkt->mp_NumMess);
- DoMethod (obj, MUIM_MW_Message);
- }
- }
- }
- else
- {
- set (data->PStatLamp, MUIA_Lamp_Color, MUIV_Lamp_Color_Error);
- MakeRequest (REQ_TITLE_ERROR, PACKET_ALLOC_ERROR, CANCEL_BUTTON, packet_er[-error]);
- }
- return (0L);
- }
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ MainWinMessage() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Íàïaàíñéa ìíáíâí ðííàùäìçþ. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG MainWinMessage (struct IClass *cl, Object *obj, Msg *msg)
- {
- struct MessageEntry *me;
- ULONG x;
- struct ELNode *eln;
- struct MWData *data = INST_DATA(cl, obj);
-
- DoMethod (data->EList, MUIM_NList_Clear);
- DoMethod (data->MHList, MUIM_NList_Clear);
- DoMethod (obj, MUIM_MultiSet, MUIA_Text_Contents, empty, data->ENumText, data->AreaText, data->DateText, data->FromText, data->ToText, data->SubjText, NULL);
- DoMethod (obj, MUIM_MultiSet, MUIA_Lamp_Color, MUIV_Lamp_Color_Off, data->MStatLamp, data->EStatLamp, NULL);
- set (data->EntryMText, MUIA_Mailtext_Text, empty);
- FreeMemPool (&data->MemPool);
-
- RDF (data->messtr, MW_MESSAGE_FMT, data->mesnum + 1, data->MailPkt->mp_NumMess, data->MailMes->mm_Size);
- set (data->MesText, MUIA_Text_Contents, data->messtr);
- RDF (data->entrystr, MW_ENTRY_FMT, data->MailMes->mm_NumEntries);
- set (data->ENumText, MUIA_Text_Contents, data->entrystr);
- if (data->MailMes->mm_Status != MMS_OK)
- {
- set (data->MStatLamp, MUIA_Lamp_Color, MUIV_Lamp_Color_Error);
- MakeRequest (REQ_TITLE_ERROR, MESSAGE_ERROR, CANCEL_BUTTON, packet_st[data->MailMes->mm_Status]);
- }
- else
- {
- set (data->MHList, MUIA_NList_Quiet, MUIV_NList_Quiet_Full);
- InsertHNodeW (data->MHList, PH_ORIG_NET, data->MailMes->mm_Header->mh_OrigNet);
- InsertHNodeW (data->MHList, PH_DEST_NET, data->MailMes->mm_Header->mh_DestNet);
- InsertHNodeW (data->MHList, PH_ORIG_NODE, data->MailMes->mm_Header->mh_OrigNode);
- InsertHNodeW (data->MHList, PH_DEST_NODE, data->MailMes->mm_Header->mh_DestNode);
- InsertHNodeW (data->MHList, PH_VER, data->MailMes->mm_Header->mh_Version);
- InsertHNodeW (data->MHList, MH_COST, data->MailMes->mm_Header->mh_Cost);
- InsertHNodeA (data->MHList, MH_ATTR, data->MailMes->mm_Header->mh_Attr);
- set (data->MHList, MUIA_NList_Quiet, MUIV_NList_Quiet_None);
- set (data->MStatLamp, MUIA_Lamp_Color, MUIV_Lamp_Color_Ok);
- if (me = MP_FindEntry (data->MailMes, NULL, MEID_AREA))
- set (data->AreaText, MUIA_Text_Contents, TransSStr (me, &data->MemPool) + 5);
- if (me = MP_FindEntry (data->MailMes, NULL, MEID_DATE))
- set (data->DateText, MUIA_Text_Contents, TransSStr (me, &data->MemPool));
- if (me = MP_FindEntry (data->MailMes, NULL, MEID_FROM))
- set (data->FromText, MUIA_Text_Contents, TransSStr (me, &data->MemPool));
- if (me = MP_FindEntry (data->MailMes, NULL, MEID_TO))
- set (data->ToText, MUIA_Text_Contents, TransSStr (me, &data->MemPool));
- if (me = MP_FindEntry (data->MailMes, NULL, MEID_SUBJ))
- set (data->SubjText, MUIA_Text_Contents, TransSStr (me, &data->MemPool));
- set (data->EList, MUIA_NList_Quiet, MUIV_NList_Quiet_Full);
- me = MP_ToEntry (data->MailMes, 0L);
- while (me)
- {
- DoMethod (data->EList, MUIM_NList_InsertSingle, me, MUIV_NList_Insert_Bottom);
- me = MP_NextEntry (me);
- }
- set (data->EList, MUIA_NList_Quiet, MUIV_NList_Quiet_None);
- for (x = 0; ; x++)
- {
- DoMethod (data->EList, MUIM_NList_GetEntry, x, &eln);
- if (! eln)
- break;
- if (eln->me->me_ID == MEID_BODY)
- break;
- }
- if (eln)
- set (data->EList, MUIA_NList_Active, x);
- else
- set (data->EList, MUIA_NList_Active, MUIV_NList_Active_Off);
- }
- return (0L);
- }
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ MainWinToMessage() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Îïíãáçåéa îí ðííàùäìçþë. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG MainWinToMessage (struct IClass *cl, Object *obj, Tie *tie)
- {
- struct MailMessage *newmes;
- struct MWData *data = INST_DATA(cl, obj);
-
- if (data->MailMes)
- {
- if (tie->ID1 > 0)
- newmes = MP_NextMessage (data->MailMes);
- else
- newmes = MP_PrevMessage (data->MailMes);
- if (newmes)
- {
- data->MailMes = newmes;
- data->mesnum += tie->ID1;
- DoMethod (data->NumBut, MUIM_Numeric_Increase, tie->ID1);
- DoMethod (obj, MUIM_MW_Message);
- }
- else
- DisplayBeep (NULL);
- }
- return (0L);
- }
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ MainWinSelectNum() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Áúàíï ìíëäïa ðííàùäìçþ. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG MainWinSelectNum (struct IClass *cl, Object *obj, Tie *tie)
- {
- struct MailMessage *newmes;
- struct MWData *data = INST_DATA(cl, obj);
-
- if (data->MailMes)
- {
- if (tie->ID1 != (data->mesnum + 1))
- {
- if (newmes = MP_ToMessage (data->MailPkt, tie->ID1 - 1))
- {
- data->MailMes = newmes;
- data->mesnum = tie->ID1 - 1;
- DoMethod (obj, MUIM_MW_Message);
- }
- else
- DisplayBeep (NULL);
- }
- }
- return (0L);
- }
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ MainWinNewEntry() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Áúàíï ìíáíâí üêäëäìña á ðîçðéä. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG MainWinNewEntry (struct IClass *cl, Object *obj, Msg *msg)
- {
- struct ELNode *eln;
- struct MessageEntry *me;
- struct MWData *data = INST_DATA(cl, obj);
-
- DoMethod (data->EList, MUIM_NList_GetEntry, MUIV_NList_GetEntry_Active, &eln);
- if (eln && (me = eln->me))
- {
- if (me->me_ID == MEID_ENTRY_CORRUPTED)
- {
- set (data->EStatLamp, MUIA_Lamp_Color, MUIV_Lamp_Color_Error);
- DisplayBeep (NULL);
- }
- else
- {
- set (data->EntryMText, MUIA_Mailtext_Text, TransMStr (me, &data->EMTMem));
- set (data->EStatLamp, MUIA_Lamp_Color, MUIV_Lamp_Color_Ok);
- }
- }
- return (0L);
- }
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ MainWinToEntry() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Îïíãáçåéa îí üêäëäìñaë. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG MainWinToEntry (struct IClass *cl, Object *obj, Tie *tie)
- {
- struct MWData *data = INST_DATA(cl, obj);
-
- if (xget (data->EList, MUIA_NList_Active) != MUIV_NList_Active_Off)
- {
- if (tie->ID1 > 0)
- set (data->EList, MUIA_NList_Active, MUIV_NList_Active_Down);
- else
- set (data->EList, MUIA_NList_Active, MUIV_NList_Active_Up);
- }
- return (0L);
- }
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ MainWinOpen() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Íñéïúñçä íðìíáìíâí íéìa. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
-
- ULONG MainWinOpen (struct IClass *cl, Object *obj, Tie *tie)
- {
- set (obj, MUIA_Window_Open, TRUE);
- hooktags[0].ti_Data = xget (obj, MUIA_Window_Window);
- ReqHook.h_Entry = (HOOKFUNC)IntuiRefresh;
- hooktags[2].ti_Data = (ULONG)(&ReqHook);
- return (0L);
- }
-
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ MainWinClose() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Æaéïúñçä íðìíáìíâí íéìa. ¢
- ¢ Ðííàùaäë îïíâïaëëä, öñí ëú ìaãíäêç îíêûæíáañäêý ç îíïa éíìöañû ïaàíñò. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
-
- ULONG MainWinClose (struct IClass *cl, Object *obj, Msg *msg)
- {
- struct MWData *data = INST_DATA(cl, obj);
-
- FreeMemPool (&data->MemPool);
- if (data->EMTMem)
- FreeVec (data->EMTMem);
- if (data->MailPkt)
- MP_FreePacket (data->MailPkt);
- DoMethod (ShowPKT, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
- return (0L);
- }
-
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ MainWinNew() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Çìçõçaêçæaõçþ íàÿäéña îí ëäñíãò OM_NEW. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG MainWinNew (struct IClass *cl, Object *obj, struct opSet *msg)
- {
- struct MWData *data;
- Object *PNTText, *PNameStr, *PLoadBut, *MesText;
- Object *LeftBut, *RightBut, *NumBut, *UpBut, *DownBut;
- Object *PStatLamp, *MStatLamp, *EStatLamp;
- Object *ENumText, *ELView, *EList;
- Object *AreaText, *DateText, *FromText, *ToText, *SubjText;
- Object *EntryLView, *EntryMText;
- Object *PHLView, *PHList, *MHLView, *MHList;
-
- ELDiHook.h_Entry = (HOOKFUNC)ELDisplay;
- ELCsHook.h_Entry = (HOOKFUNC)ELConstruct;
- ELDsHook.h_Entry = (HOOKFUNC)ELDestruct;
- SELDHook.h_Entry = (HOOKFUNC)SELDisplay;
- HDiHook.h_Entry = (HOOKFUNC)HDisplay;
- HCsHook.h_Entry = (HOOKFUNC)HConstruct;
- HDsHook.h_Entry = (HOOKFUNC)HDestruct;
-
- // ðíæãaìçä íàÿäéña:
-
- obj = (Object *)DoSuperNew (cl, obj,
- MUIA_Window_Title, MAINWIN_TITLE,
- MUIA_Window_ID, MAKE_ID('M','A','I','N'),
- MUIA_Window_ScreenTitle, PROG_COPYRIGHT,
- WindowContents, VGroup,
- Child, ColGroup(2),
- Child, Label1 (MW_PACKET_LABEL),
- Child, HGroup,
- Child, PNTText = SimpleText (empty),
- Child, PNameStr = String (empty, FMSIZE),
- Child, PLoadBut = PopButton (MUII_PopFile),
- End,
- Child, Label1 (MW_MESSAGE_LABEL),
- Child, HGroup,
- Child, MesText = SimpleText (empty),
- Child, VGroup,
- Child, VSpace(0),
- Child, LeftBut = PopButton (MUII_ArrowLeft),
- Child, VSpace(0),
- End,
- Child, NumBut = NumericbuttonObject,
- MUIA_Numeric_Min, 1,
- MUIA_Numeric_Default, 1,
- MUIA_Numeric_Format, MUIX_C MW_NUM_FMT,
- End,
- Child, VGroup,
- Child, VSpace(0),
- Child, RightBut = PopButton (MUII_ArrowRight),
- Child, VSpace(0),
- End,
- End,
- End,
- Child, RegisterObject,
- MUIA_Register_Titles, mw_register,
- Child, VGroup,
- Child, HGroup,
- Child, VGroup,
- MUIA_Weight, 80,
- Child, HGroup, GroupFrameT(MW_STATUS_TITLE),
- Child, HSpace(0),
- Child, Label(MW_PACKET_LABEL),
- Child, PStatLamp = SimpleLamp,
- Child, HSpace(0),
- Child, Label(MW_MESSAGE_LABEL),
- Child, MStatLamp = SimpleLamp,
- Child, HSpace(0),
- Child, Label(MW_ENTRY_LABEL),
- Child, EStatLamp = SimpleLamp,
- Child, HSpace(0),
- End,
- Child, ColGroup(2),
- Child, Label1(MW_AREA_LABEL),
- Child, AreaText = SimpleText (empty),
- Child, Label1(MW_DATE_LABEL),
- Child, DateText = SimpleText (empty),
- Child, Label1(MW_FROM_LABEL),
- Child, FromText = SimpleText (empty),
- Child, Label1(MW_TO_LABEL),
- Child, ToText = SimpleText (empty),
- End,
- End,
- Child, VGroup,
- MUIA_Weight, 30,
- Child, HGroup,
- Child, UpBut = PopButton (MUII_ArrowUp),
- Child, DownBut = PopButton (MUII_ArrowDown),
- Child, ENumText = TextObject,
- MUIA_Text_Contents, empty,
- End,
- End,
- Child, ELView = NListviewObject,
- MUIA_NListview_NList, EList = NListObject,
- InputListFrame,
- MUIA_NList_Input, TRUE,
- MUIA_NList_Title, TRUE,
- MUIA_NList_Format, "BAR,",
- MUIA_NList_DisplayHook2, &ELDiHook,
- MUIA_NList_ConstructHook2, &ELCsHook,
- MUIA_NList_DestructHook2, &ELDsHook,
- End,
- End,
- End,
- End,
- Child, HGroup,
- Child, Label1(MW_SUBJ_LABEL),
- Child, SubjText = SimpleText (empty),
- End,
- Child, EntryLView = NListviewObject,
- MUIA_Weight, 30,
- MUIA_NListview_NList, EntryMText = MailtextObject,
- TextFrame,
- MUIA_NList_Title, TRUE,
- MUIA_Mailtext_Text, empty,
- MUIA_NList_DisplayHook2, &SELDHook,
- End,
- End,
- End,
- Child, HGroup,
- Child, VGroup,
- Child, CLabel(MW_PACKET_HEADER),
- Child, PHLView = NListviewObject,
- MUIA_NListview_NList, PHList = NListObject,
- ReadListFrame,
- MUIA_NList_Input, FALSE,
- MUIA_NList_Format, ",",
- MUIA_NList_DisplayHook2, &HDiHook,
- MUIA_NList_ConstructHook2, &HCsHook,
- MUIA_NList_DestructHook2, &HDsHook,
- End,
- End,
- End,
- Child, VGroup,
- Child, CLabel(MW_MESSAGE_HEADER),
- Child, MHLView = NListviewObject,
- MUIA_NListview_NList, MHList = NListObject,
- ReadListFrame,
- MUIA_NList_Input, FALSE,
- MUIA_NList_Format, ",",
- MUIA_NList_DisplayHook2, &HDiHook,
- MUIA_NList_ConstructHook2, &HCsHook,
- MUIA_NList_DestructHook2, &HDsHook,
- End,
- End,
- End,
- End,
- End,
- End,
- TAG_DONE);
-
- if (! obj)
- {
- MakeRequest (REQ_TITLE_ERROR, WINDOW_PROBLEM, EXIT_BUTTON, NULL);
- return (GAME_OVER);
- }
-
- /// Æaîíêìçë ðñïòéñòïò ãaììúô:
- ///
-
- data = INST_DATA(cl, obj);
-
- data->PNTText = PNTText; data->PNameStr = PNameStr; data->PLoadBut = PLoadBut; data->MesText = MesText;
- data->NumBut = NumBut;
- data->PStatLamp = PStatLamp; data->MStatLamp = MStatLamp; data->EStatLamp = EStatLamp;
- data->ENumText = ENumText; data->EList = EList;
- data->AreaText = AreaText; data->DateText = DateText; data->FromText = FromText; data->ToText = ToText; data->SubjText = SubjText;
- data->EntryMText = EntryMText;
-
- data->PHList = PHList; data->MHList = MHList;
-
- *data->reqfile = '\0';
- data->MailPkt = NULL;
- data->EMTMem = NULL;
- NewList (&data->MemPool);
-
- /// Òðñaìíáçë ëäñíãú ïäaéõçç ìa æaéïúñçä, ìa éìíîéç ç ìa ëäìý:
- ///
-
- // Õçéê-òîïaáêäìçä ð éêaáçañòïú:
- DoMethod (obj, MUIM_MultiSet, MUIA_CycleChain, TRUE, PLoadBut, LeftBut, RightBut, NumBut, UpBut, DownBut, ELView, EntryLView, PHLView, MHLView, NULL);
-
- // Æaéïúñçä îí âaãåäñò íéìa:
- DoMethod (obj, MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
- obj, 1,
- MUIM_MW_Close);
- // Æaâïòæéa îaéäña ìaåañçäë ìa éìíîéò:
- DoMethod (PLoadBut, MUIM_Notify, MUIA_Pressed, FALSE,
- obj, 1,
- MUIM_MW_OpenPKT);
- // Æaâïòæéa îaéäña áúàíïíë çæ ðñïíéç:
- DoMethod (PNameStr, MUIM_Notify, MUIA_String_Acknowledge,
- MUIV_EveryTime,
- obj, 1,
- MUIM_MW_NewName);
- // Ðñïäêéa áêäáí:
- DoMethod (LeftBut, MUIM_Notify, MUIA_Pressed, FALSE,
- obj, 2,
- MUIM_MW_ToMessage, -1L);
- // Ðñïäêéa áîïaáí:
- DoMethod (RightBut, MUIM_Notify, MUIA_Pressed, FALSE,
- obj, 2,
- MUIM_MW_ToMessage, 1L);
- // Áúàíï ìíëäïa ðííàùäìçþ:
- DoMethod (NumBut, MUIM_Notify, MUIA_Numeric_Value,
- MUIV_EveryTime,
- obj, 2,
- MUIM_MW_SelectNum,
- MUIV_TriggerValue);
- // Ðñïäêéa ááäïô:
- DoMethod (UpBut, MUIM_Notify, MUIA_Pressed, FALSE,
- obj, 2,
- MUIM_MW_ToEntry, -1L);
- // Ðñïäêéa áìçæ:
- DoMethod (DownBut, MUIM_Notify, MUIA_Pressed, FALSE,
- obj, 2,
- MUIM_MW_ToEntry, 1L);
- // Áúàíï ìíáíâí üêäëäìña á ðîçðéä:
- DoMethod (EList, MUIM_Notify, MUIA_NList_Active,
- MUIV_EveryTime,
- obj, 1,
- MUIM_MW_NewEntry);
- return ((ULONG)obj);
- }
-
- /* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ MainWinDispatcher() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
- ¢ ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ ¢
- ¢ Ãçðîäñöäï íàÿäéña MainWin. ¢
- ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
- */
- ULONG __saveds __asm MainWinDispatcher(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg)
- {
- switch (msg->MethodID)
- {
- case OM_NEW : return (MainWinNew (cl, obj, (APTR)msg));
- case MUIM_MW_Open : return (MainWinOpen (cl, obj, (APTR)msg));
- case MUIM_MW_Close : return (MainWinClose (cl, obj, (APTR)msg));
- case MUIM_MW_OpenPKT : return (MainWinOpenPKT (cl, obj, (APTR)msg));
- case MUIM_MW_NewPacket : return (MainWinNewPacket (cl, obj, (APTR)msg));
- case MUIM_MW_Message : return (MainWinMessage (cl, obj, (APTR)msg));
- case MUIM_MW_ToMessage : return (MainWinToMessage (cl, obj, (APTR)msg));
- case MUIM_MW_NewEntry : return (MainWinNewEntry (cl, obj, (APTR)msg));
- case MUIM_MW_ToEntry : return (MainWinToEntry (cl, obj, (APTR)msg));
- case MUIM_MW_NewName : return (MainWinNewName (cl, obj, (APTR)msg));
- case MUIM_MW_SelectNum : return (MainWinSelectNum (cl, obj, (APTR)msg));
- }
- return (DoSuperMethodA (cl, obj, msg));
- }
-